-- set search_path to sm_sc;
-- drop function if exists sm_sc.fv_d_amask_dloss_dindepdt_1(float[], int[]);
create or replace function sm_sc.fv_d_amask_dloss_dindepdt_1
(
  i_dloss_ddepdt            float[]            ,
  i_co_value                int[]                 -- i_mask_len
)
returns float[]
as
$$
-- declare 
begin
  return sm_sc.fv_amask(i_dloss_ddepdt, i_co_value, 0.0 :: float);

end
$$
language plpgsql stable
cost 100;

-- select 
--   sm_sc.fv_d_amask_dloss_dindepdt_1
--   (
--     array
--     [
--       [1, 2, 3, 4, 5]
--     , [2, 3, 4, 5, 6]
--     , [3, 4, 5, 6, 7]
--     , [4, 5, 6, 7, 8]
--     ]
--   , array[[3, 0, 2, 1, 3]]
--   )

-- select 
--   sm_sc.fv_d_amask_dloss_dindepdt_1
--   (
--     array
--     [
--       [
--         [1, 2, 3, 4, 5]
--       , [2, 3, 4, 5, 6]
--       , [3, 4, 5, 6, 7]
--       , [4, 5, 6, 7, 8]
--       ]
--     , [
--         [-1, -2, -3, -4, -5]
--       , [-2, -3, -4, -5, -6]
--       , [-3, -4, -5, -6, -7]
--       , [-4, -5, -6, -7, -8]
--       ]
--     , [
--         [11, 12, 13, 14, 15]
--       , [12, 13, 14, 15, 16]
--       , [13, 14, 15, 16, 17]
--       , [14, 15, 16, 17, 18]
--       ]
--     ]
--   , array[[[3, 0, 2, 1, 0]], [[1, 1, 4, 2, 1]], [[3, 2, 2, 1, 4]]]
--   )

-- select 
--   sm_sc.fv_d_amask_dloss_dindepdt_1
--   (
--     array
--     [
--       [
--         [
--           [1, 2, 3, 4, 5]
--         , [2, 3, 4, 5, 6]
--         , [3, 4, 5, 6, 7]
--         , [4, 5, 6, 7, 8]
--         ]
--       , [
--           [-1, -2, -3, -4, -5]
--         , [-2, -3, -4, -5, -6]
--         , [-3, -4, -5, -6, -7]
--         , [-4, -5, -6, -7, -8]
--         ]
--       , [
--           [11, 12, 13, 14, 15]
--         , [12, 13, 14, 15, 16]
--         , [13, 14, 15, 16, 17]
--         , [14, 15, 16, 17, 18]
--         ]
--       ]
--     , [
--         [
--           [1, 2, 3, 4, 5]
--         , [2, 3, 4, 5, 6]
--         , [3, 4, 5, 6, 7]
--         , [4, 5, 6, 7, 8]
--         ]
--       , [
--           [-1, -2, -3, -4, -5]
--         , [-2, -3, -4, -5, -6]
--         , [-3, -4, -5, -6, -7]
--         , [-4, -5, -6, -7, -8]
--         ]
--       , [
--           [11, 12, 13, 14, 15]
--         , [12, 13, 14, 15, 16]
--         , [13, 14, 15, 16, 17]
--         , [14, 15, 16, 17, 18]
--         ]
--       ]
--     ]
--   , array[[[[3, 0, 2, 1, 3]], [[1, 1, 4, 2, 4]], [[3, 3, 2, 1, 2]]],[[[3, 0, 2, 1, 1]], [[1, 1, 4, 2, 0]], [[3, 3, 2, 1, 2]]]]
--   )